<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
  <title>CSE 7000 - User Guide</title>
  <meta name="GENERATOR" content="Quanta Plus">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" href="pagestylesheet.css"  type="text/css">
</head>
<body>
<div class="divMain">
<div class="divHead">
<table border="0"><TR><TD>
<table border="0"><TR><TD width="30px"></TD><td>
<a href="index.html"><img src="logo.jpg" border="0"></a>
</td>
<td width="30px"></td><td valign="bottom" align="right"><p class="pNames">Dan Carpenter,  Tobin Chee,<br>Meghan Day, Sam Jones,  Ben Tarney</p></td>
</tr></table>
</TD></TR></table>
<hr>
</div>
<div class="divCenter">
<table><tr><td colspan="2" height="25px"></td></tr><tr>
<td width="20px"></td><td width="230px" align="left" valign="top"><br>
<ul class="listLinks">
<li><a href="userguide.html">User Guide</a></li>
<LI><a href="developersguide.html">Developers Guide</a></LI>
<LI><a href="testplan.html">Test Plan</a></LI>
</ul></TD>


<td width="500" align="left" valign="top">
<a name="top"></a>
<h1>User Guide</h1>
<ol><LI><a href="#hwdescrip">Hardware Description</a></li>
<li><a href="#instrucs">Instructions</a></LI>
<li><a href="#direcs">Directives</a></li>
<li><a href="#io">Input/Output</a></li>
<li><a href="#sample">Sample Program</a></li>
<li><a href="#runasm">Running The Assembler</a></li>
<li><a href="#compexec">Compiling Through Execution</a></li>
<li><a href="#loadexec">Load And Execution</a></li>
<li><a href="#errors">Error Messages</a><br>
<li><a href="#pass1">Testing Pass 1</a></li>
<li><a href="#swlims">Software Limitations</a></li>
</ol>	
<br>

<a name="hwdescrip"></a>
<h3>Hardware Description</h3>
<p>The CSE7000 Machine is word addressable.  There are 4096 32-bit words of memory. Its accumulator has an overflow register, which will be greater than zero if an overflow has occurred. The machine contains seven 16-bit index  registers. A 32-bit instruction register holds the current instruction. A 16-bit location counter holds the current instruction's location in memory.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="instrucs"></a>
<h3>Instructions</h3>
<p>Instructions are operations that consume memory (each operation adds to the program counter). Instructions are the operations that execute the program. View attached <a href="CSE7000.instructions.pdf">instruction table</a>.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="direcs"></a>
<h3>Directives</h3>
<p>Directives are extra operations that do not consume memory (they do not add to the program counter), although some store objects in memory. View attached <a href="CSE7000.directives.pdf">directives table</a>.</p>
<p>
<a href="#top">Return To Top</a></p><br>

<a name="io"></a>
<h3>Input/Output</h3>
<p>Input and output is achieved by the use of the IOWD instruction. To view the IOWD instruction see our <a href="CSE7000.instructions.pdf">instruction table</a>.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="sample"></a>
<h3>Sample Program</h3>
<p>Here is a <a href="sampleProg.s" target="_blank">sample program</a> illustrating a few commands and directives from the CSE7000 language. This sample program shows proper formating with labels in the first column, instructions and directives in the second column, all operands in the third column, and comments beginning with a colon.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="runasm"></a>
<h3>Running The Assembler</h3>
<p>To run the assembler, from the terminal execute the command:<br>
$java Assembler myTest.s myTest.o<br><br>
where myTest.s is the source program file and myTest.o is the output object file. Executing the assembler will compile a CSE7000 program. It will create an object file will follow the <a href="objectFileFormat.pdf">object file format</a>. All operations that could be parsed will be displayed to the console. For information about linking and loading the object file for execution see <a href="#compexec">Compiling Through Execution</a>.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="compexec"></a>
<h3>Compiling Through Execution</h3>
<p>To run the linker and loader, from the terminal execute the command:<br>
$java LinkAndLoad myTest.o myTest<br><br>
where myTest.o is the object file to be linked and loaded and myTest is the executable program. Executing the linker and loader will create an executable to be run by the machine. It will be machine code Hexadecimal. For information about running an executable program see <a href="#loadexec">Load and Execution</a>.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name="loadexec"></a>
<h3>Load and Execution</h3>
<p>To run an executable program, use the machine. From the terminal execute the command:<br>
$java Machine myTest<br><br>
where myTest is the executable program to be run. Executing the machine will run the machine with the executable program.</p>
<p><a href="#top">Return To Top</a></p><br>

<a name = "errors"></a>
<h3>Error Messages</h3>
<p>Error messages occur when syntax was not followed correctly. Fatal errors stop compilation and return the error. Severe errors affect the operation of code. The code will still compile with severe errors and the error will be displayed. Severe errors are replaced with a NOP during compilation. Warning errors do not affect operation of the code, and are removed during compilation and reported. For a description of errors, their causes, and their solutions, see our <a href="errorTable.pdf">error guide</a>.</p>
<p><a href="#top">Return To Top</a></p>
<a name="swlims"></a>

<a name="pass1"></a>
<h3>Testing Pass 1</h3>
<p>To test pass 1 results run the assembler as normally described in <a href="#runasm">Running The Assembler</a>. As in Running The Assembler,
$java Assembler myTest.s myTest.o
will output all operations that could be parsed to the console. An intermediate version file will be created specifically for testing this pass. The intermediate version from the example will be titled myTest-IntermediateFile0.txt. The intermediate file contains each line of code with any errors that line may have produced, and a complete symbol table.</p>
<p><a href="#top">Return To Top</a></p>

<h3>Software Limitations</h3>
<p>--------STILL NEEDS FILLED IN--------</p>
<p><a href="#top">Return To Top</a></p><br>



</td></tr></table>
</div>
<div class="divFoot"></div>
</div>
</body>
</html>